<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>OpenGL Shading Language</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/OpenGL_Shading_Language"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-OpenGL_Shading_Language rootpage-OpenGL_Shading_Language skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">OpenGL Shading Language</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Not to be confused with <a href="Open_Shading_Language" title="Open Shading Language">Open Shading Language</a>.</div>
<p><b>OpenGL Shading Language</b> (<b>GLSL</b>) is a <a href="High_level_programming_language" class="mw-redirect" title="High level programming language">high-level</a> <a href="Shading_language" title="Shading language">shading language</a> with a syntax based on the <a href="C_(programming_language)" title="C (programming language)">C programming language</a>. It was created by the <a href="OpenGL_ARB" class="mw-redirect" title="OpenGL ARB">OpenGL ARB</a> (OpenGL Architecture Review Board) to give developers more direct control of the <a href="Graphics_pipeline" title="Graphics pipeline">graphics pipeline</a> without having to use <a href="ARB_assembly_language" title="ARB assembly language">ARB assembly language</a> or hardware-specific languages.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Background">Background</h2></div>
<p>With advances in graphics cards, new features have been added to allow for increased flexibility in the rendering pipeline at the <a href="Vertex_(computer_graphics)" title="Vertex (computer graphics)">vertex</a> and <a href="Fragment_(computer_graphics)" title="Fragment (computer graphics)">fragment</a> level. Programmability at this level is achieved with the use of fragment and vertex <a href="Shader" title="Shader">shaders</a>.
</p><p>Originally, this functionality was achieved by writing shaders in <a href="ARB_assembly_language" title="ARB assembly language">ARB assembly language</a> – a complex and unintuitive task. The <a href="OpenGL_ARB" class="mw-redirect" title="OpenGL ARB">OpenGL ARB</a> created the OpenGL Shading Language to provide a more intuitive method for programming the <a href="Graphics_processing_unit" title="Graphics processing unit">graphics processing unit</a> while maintaining the open standards advantage that has driven OpenGL throughout its history.
</p><p>Originally introduced as an extension to OpenGL 1.4, GLSL was formally included into the OpenGL 2.0 core in 2004 by the OpenGL ARB. It was the first major revision to OpenGL since the creation of <a href="OpenGL" title="OpenGL">OpenGL</a> 1.0 in 1992.
</p><p>Some benefits of using GLSL are:
</p>
<ul><li><a href="Cross-platform" class="mw-redirect" title="Cross-platform">Cross-platform</a> compatibility on multiple operating systems, including <a href="Linux" title="Linux">Linux</a>, <a href="MacOS" title="MacOS">macOS</a> and <a href="Microsoft_Windows" title="Microsoft Windows">Windows</a>.</li>
<li>The ability to write shaders that can be used on any hardware vendor's graphics card that supports the OpenGL Shading Language.</li>
<li>Each hardware vendor includes the GLSL compiler in their driver, thus allowing each vendor to create code optimized for their particular graphics card’s architecture.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Versions">Versions</h2></div>
<p>GLSL versions have evolved alongside specific versions of the OpenGL API. It is only with OpenGL versions 3.3 and above that the GLSL and OpenGL major and minor version numbers match. These versions for GLSL and OpenGL are related in the following table:
</p>
<table class="wikitable">
<tbody><tr>
<th>GLSL Version</th>
<th>OpenGL Version</th>
<th>Date</th>
<th>Shader Preprocessor
</th></tr>
<tr>
<td>1.10.59<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></td>
<td>2.0</td>
<td>30 April 2004</td>
<td>#version 110
</td></tr>
<tr>
<td>1.20.8<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></td>
<td>2.1</td>
<td>07 September 2006</td>
<td>#version 120
</td></tr>
<tr>
<td>1.30.10<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup></td>
<td>3.0</td>
<td>22 November 2009</td>
<td>#version 130
</td></tr>
<tr>
<td>1.40.08<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></td>
<td>3.1</td>
<td>22 November 2009</td>
<td>#version 140
</td></tr>
<tr>
<td>1.50.11<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup></td>
<td>3.2</td>
<td>04 December 2009</td>
<td>#version 150
</td></tr>
<tr>
<td>3.30.6<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup></td>
<td>3.3</td>
<td>11 March 2010</td>
<td>#version 330
</td></tr>
<tr>
<td>4.00.9<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></td>
<td>4.0</td>
<td>24 July 2010</td>
<td>#version 400
</td></tr>
<tr>
<td>4.10.6<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup></td>
<td>4.1</td>
<td>24 July 2010</td>
<td>#version 410
</td></tr>
<tr>
<td>4.20.11<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></td>
<td>4.2</td>
<td>12 December 2011</td>
<td>#version 420
</td></tr>
<tr>
<td>4.30.8<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></td>
<td>4.3</td>
<td>7 February 2013</td>
<td>#version 430
</td></tr>
<tr>
<td>4.40.9<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup></td>
<td>4.4</td>
<td>16 June 2014</td>
<td>#version 440
</td></tr>
<tr>
<td>4.50.7<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup></td>
<td>4.5</td>
<td>09 May 2017</td>
<td>#version 450
</td></tr>
<tr>
<td>4.60.5<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup></td>
<td>4.6</td>
<td>14 June 2018</td>
<td>#version 460
</td></tr></tbody></table>
<p><a href="OpenGL_ES" title="OpenGL ES">OpenGL ES</a> and <a href="WebGL" title="WebGL">WebGL</a> use <b>OpenGL ES Shading Language</b> (abbreviated: <b>GLSL ES</b> or <b>ESSL</b>).
</p>
<table class="wikitable" border="1">
<tbody><tr>
<th>GLSL ES version</th>
<th>OpenGL ES version</th>
<th>WebGL version</th>
<th>Based on GLSL version</th>
<th>Date</th>
<th>Shader Preprocessor
</th></tr>
<tr>
<td>1.00.17<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup></td>
<td>2.0</td>
<td>1.0</td>
<td>1.20</td>
<td>12 May 2009</td>
<td>#version 100
</td></tr>
<tr>
<td>3.00.6<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup></td>
<td>3.0</td>
<td>2.0</td>
<td>3.30</td>
<td>29 January 2016</td>
<td>#version 300 es
</td></tr>
<tr>
<td>3.10.5<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>
</td>
<td>3.1
</td>
<td>
</td>
<td>GLSL ES 3.00
</td>
<td>29 January 2016
</td>
<td>#version 310 es
</td></tr>
<tr>
<td>3.20.6<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</td>
<td>3.2
</td>
<td>
</td>
<td>GLSL ES 3.10
</td>
<td>10 July 2019
</td>
<td>#version 320 es
</td></tr></tbody></table>
<p>The two languages are related but not directly compatible. They can be interconverted through <a href="Standard_Portable_Intermediate_Representation" title="Standard Portable Intermediate Representation">SPIRV-Cross</a>.<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Language">Language</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Operators">Operators</h3></div>
<p>GLSL contains the same operators as the <a href="Operators_in_C_and_C%2B%2B" title="Operators in C and C++">operators in C and C++</a>, with the exception of <a href="Pointer_(computer_programming)" title="Pointer (computer programming)">pointers</a>. <a href="Bitwise_operators" class="mw-redirect" title="Bitwise operators">Bitwise operators</a> were added in version 1.30.
</p>
<div class="mw-heading mw-heading3"><h3 id="Functions_and_control_structures">Functions and control structures</h3></div>
<p>Similar to the <a href="C_(programming_language)" title="C (programming language)">C programming language</a>, GLSL supports loops and branching, for instance: if-else, for, switch, etc. Recursion is forbidden and checked for during compilation.
</p><p>User-defined functions are supported and built-in functions are provided. The graphics card manufacturer may optimize built-in functions at the hardware level. Many of these functions are similar to those in the math library of the C programming language while others are specific to graphics programming. Most of the built-in functions and operators, can operate both on scalars and vectors (up to 4 elements), for one or both operands. Common built-in functions that are provided and are commonly used for graphics purposes are: <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">mix</code>, <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">smoothstep</code>, <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">normalize</code>, <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">inversesqrt</code>, <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">clamp</code>, <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">length</code>, <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">distance</code>, <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">dot</code>, <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">cross</code>, <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">reflect</code>, <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">refract</code> and vector <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">min</code> and <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">max</code>. Other functions like <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">abs</code>, <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">sin</code>, <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">pow</code>, etc, are provided but they can also all operate on vector quantities, i.e. <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">pow(vec3(1.5, 2.0, 2.5), abs(vec3(0.1, -0.2, 0.3)))</code>. GLSL supports <a href="Function_overloading" title="Function overloading">function overloading</a> (for both built-in functions and operators, and user-defined functions), so there might be multiple function definitions with the same name, having different number of parameters or parameter types. Each of them can have own independent return type.
</p>
<div class="mw-heading mw-heading3"><h3 id="Preprocessor">Preprocessor</h3></div>
<p>GLSL defines a subset of the <a href="C_preprocessor" title="C preprocessor">C preprocessor</a> (CPP), combined with its own special directives for specifying versions and OpenGL extensions. The parts removed from CPP are those relating to file names such as <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">#include</code> and <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">__FILE__</code>.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p><p>The <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">GL_ARB_shading_language_include</code> extension<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> (implemented for example in Nvidia drivers<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> on Windows and Linux, and all Mesa 20.0.0<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> drivers on Linux, FreeBSD and Android) implements ability to use <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">#include</code> in source code, allowing easier sharing of code and definitions between many shaders without extra manual pre-processing. Similar extension <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">GL_GOOGLE_include_directive</code> and <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">GL_GOOGLE_cpp_style_line_directive</code> exist for using GLSL with Vulkan, and are supported in reference SPIR-V compiler (<code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">glslang</code> aka glslangValidator).<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Compilation_and_execution">Compilation and execution</h2></div>
<p>GLSL shaders are not stand-alone applications; they require an application that utilizes the OpenGL API, which is available on many different platforms (e.g., <a href="Linux" title="Linux">Linux</a>, <a href="MacOS" title="MacOS">macOS</a>, <a href="Microsoft_Windows" title="Microsoft Windows">Windows</a>). There are language bindings for <a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="C%2B%2B" title="C++">C++</a>, <a href="C_sharp_(programming_language)" class="mw-redirect" title="C sharp (programming language)">C#</a>, <a href="JavaScript" title="JavaScript">JavaScript</a>, <a href="Delphi_(programming_language)" class="mw-redirect" title="Delphi (programming language)">Delphi</a>, <a href="Java_(programming_language)" title="Java (programming language)">Java</a>, and many more.
</p><p>GLSL shaders themselves are simply a set of <a href="String_(computer_science)" title="String (computer science)">strings</a> that are passed to the hardware vendor's driver for compilation from within an application using the OpenGL API's entry points. Shaders can be created <a href="https://en.wiktionary.org/wiki/on_the_fly" class="extiw external" title="wiktionary:on the fly">on the fly</a> from within an application, or read-in as text files, but must be sent to the driver in the form of a string.
</p><p>The set of APIs used to compile, link, and pass parameters to GLSL programs are specified in three OpenGL extensions, and became part of core OpenGL as of OpenGL Version 2.0. The API was expanded with geometry shaders in OpenGL 3.2, tessellation shaders in OpenGL 4.0 and <a href="Compute_kernel" title="Compute kernel">compute shaders</a> in OpenGL 4.3. These OpenGL APIs are found in the extensions:
</p>
<ul><li>ARB vertex shader</li>
<li>ARB fragment shader</li>
<li>ARB shader objects</li>
<li>ARB geometry shader 4</li>
<li>ARB tessellation shader</li>
<li>ARB compute shader</li></ul>
<p>GLSL shaders can also be used with <a href="Vulkan_(API)" class="mw-redirect" title="Vulkan (API)">Vulkan</a>, and are a common way of using shaders in Vulkan. GLSL shaders are precompiled before use, or at runtime, into a binary bytecode format called <a href="SPIR-V" class="mw-redirect" title="SPIR-V">SPIR-V</a>, usually using offline compiler.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Standard_Portable_Intermediate_Representation" title="Standard Portable Intermediate Representation">Standard Portable Intermediate Representation</a>, an intermediate shader language by Khronos Group</li>
<li><a href="3D_computer_graphics" title="3D computer graphics">3D computer graphics</a></li>
<li><a href="Khronos_Group" title="Khronos Group">Khronos Group</a></li>
<li><a href="WebGL" title="WebGL">WebGL</a>, an OpenGL-ES dialect for web browsers, which uses GLSL for shaders</li>
<li><a href="Shadertoy" title="Shadertoy">Shadertoy</a></li>
<li><a href="LWJGL" title="LWJGL">LWJGL</a>, a library that includes Java bindings for OpenGL.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Other_shading_languages">Other shading languages</h3></div>
<ul><li><a href="ARB_assembly_language" title="ARB assembly language">ARB assembly language</a>, a low-level shading language</li>
<li><a href="Cg_(programming_language)" title="Cg (programming language)">Cg</a>, a high-level shading language for programming vertex and pixel shaders</li>
<li><a href="High-Level_Shader_Language" title="High-Level Shader Language">HLSL</a>, a high-level shading language for use with <a href="Direct3D" title="Direct3D">Direct3D</a> and <a href="SPIR-V" class="mw-redirect" title="SPIR-V">SPIR-V</a></li>
<li><a href="TGSI" class="mw-redirect" title="TGSI">TGSI</a>, a low-level intermediate language introduced by <a href="Gallium3D" class="mw-redirect" title="Gallium3D">Gallium3D</a></li>
<li>AMDIL, a low-level intermediate language used internally at AMD</li>
<li><a href="RenderMan_Shading_Language" title="RenderMan Shading Language">RenderMan Shading Language</a></li>
<li><a href="WebGPU_Shading_Language" title="WebGPU Shading Language">WGSL</a>, a shading language with a Rust-like syntax for WebGPU originally based on <a href="SPIR-V" class="mw-redirect" title="SPIR-V">SPIR-V</a></li>
<li><a href="Metal_(API)" title="Metal (API)">Metal Shading Language</a>, a shading language used with <a href="Apple_Inc." title="Apple Inc.">Apple</a> platform's proprietary Metal <a href="Graphics_API" class="mw-redirect" title="Graphics API">Graphics API</a><sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Open_Shading_Language" title="Open Shading Language">Open Shading Language</a>, a shading language developed by <a href="Sony_Pictures_Imageworks" title="Sony Pictures Imageworks">Sony Pictures Imageworks</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<dl><dt>Citations</dt></dl>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.1.10.pdf">"GLSL Language Specification, Version 1.10.59"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.1.20.pdf">"GLSL Language Specification, Version 1.20.8"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.1.30.pdf">"GLSL Language Specification, Version 1.30.10"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.1.40.pdf">"GLSL Language Specification, Version 1.40.08"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.1.50.pdf">"GLSL Language Specification, Version 1.50.11"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.3.30.pdf">"GLSL Language Specification, Version 3.30.6"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.00.pdf">"GLSL Language Specification, Version 4.00.9"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.10.pdf">"GLSL Language Specification, Version 4.10.6"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.20.pdf">"GLSL Language Specification, Version 4.20.11"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.30.pdf">"GLSL Language Specification, Version 4.30.8"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.40.pdf">"GLSL Language Specification, Version 4.40.9"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.50.pdf">"GLSL Language Specification, Version 4.50.7"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.60.pdf">"GLSL Language Specification, Version 4.60.5"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/es/2.0/GLSL_ES_Specification_1.00.pdf">"GLSL ES Language Specification, Version 1.00, revision 17"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf">"GLSL ES Language Specification, Version 3.00, revision 6"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/es/3.1/GLSL_ES_Specification_3.10.pdf">"The OpenGL ES® Shading Language, version 3.10, revision 5"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/specs/es/3.2/GLSL_ES_Specification_3.20.pdf">"The OpenGL ES® Shading Language, Version 3.20.6"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://github.com/KhronosGroup/SPIRV-Cross"><i>KhronosGroup/SPIRV-Cross</i></a>, The Khronos Group, 2019-09-06<span class="reference-accessdate">, retrieved <span class="nowrap">2019-09-08</span></span></cite></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><cite class="citation book cs1">"Shader Preprocessor". <a rel="nofollow" class="external text" href="https://www.oreilly.com/library/view/opengl-programming-guide/9780132748445/ch02lev2sec5.html"><i>OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3, Eighth Edition</i></a>.</cite></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shading_language_include.txt">"ARB_shading_language_include"</a>. <i>Khronos.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-05-31</span></span>.</cite></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20210308165926/https://forums.laptopvideo2go.com/topic/27639-nvidia-driver-26590-whql-quadro/?tab=comments#comment-134520">"NVIDIA driver 265.90 WHQL Quadro"</a>. <i>LaptopVideo2Go Forums</i>. Archived from <a rel="nofollow" class="external text" href="https://forums.laptopvideo2go.com/topic/27639-nvidia-driver-26590-whql-quadro/?tab=comments#comment-134520">the original</a> on March 8, 2021.</cite></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20200512220620/https://mesa3d.org/relnotes/20.0.0.html">"Mesa 20.0.0 Release Notes / 2020-02-19"</a>. <i>www.mesa3d.org</i>. Archived from <a rel="nofollow" class="external text" href="https://www.mesa3d.org/relnotes/20.0.0.html">the original</a> on 2020-05-12<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-05-31</span></span>.</cite></span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/KhronosGroup/glslang/pull/46">"#include directive support by antiagainst · Pull Request #46 · KhronosGroup/glslang"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-05-31</span></span>.</cite></span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/KhronosGroup/glslang/pull/38">"Preprocessing line number handling by antiagainst · Pull Request #38 · KhronosGroup/glslang"</a>. <i>GitHub</i>.</cite></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/KhronosGroup/glslang/pull/43">"Extend the syntax of #line and __FILE__ to support filename strings by antiagainst · Pull Request #43 · KhronosGroup/glslang"</a>. <i>GitHub</i>.</cite></span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf%5d">"Metal Shading Language Specification Version 3.2"</a>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<dl><dt>Books</dt></dl>
<ul><li><cite id="CITEREFRost2009" class="citation book cs1"><a href="Randi_J._Rost" title="Randi J. Rost">Rost, Randi J.</a> (30 July 2009). <i>OpenGL Shading Language</i> (3rd ed.). Addison-Wesley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-321-63763-5</bdi>.</cite></li>
<li><cite id="CITEREFKessenichBaldwinRost" class="citation book cs1">Kessenich, John; Baldwin, David; Rost, Randi. <i>The OpenGL Shading Language</i>. Version 1.10.59. 3Dlabs, Inc. Ltd.</cite></li>
<li><cite id="CITEREFBaileyCunningham2009" class="citation book cs1">Bailey, Mike; Cunningham, Steve (22 April 2009). <i>Graphics Shaders: Theory and Practice</i> (2nd ed.). CRC Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1-56881-434-6</bdi>.</cite></li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1290876196">
/* start https://en.wikipedia.org/ */
.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1237033735">
/* start https://en.wikipedia.org/ */
@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}
/* end https://en.wikipedia.org/ */
</style><div class="side-box side-box-right sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */
.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}
/* end https://en.wikipedia.org/ */
</style>
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikibooks has a book on the topic of: <i><b><a href="https://en.wikibooks.org/wiki/GLSL_Programming" class="extiw external" title="wikibooks:GLSL Programming">GLSL Programming</a></b></i></div></div>
</div>
<ul><li><a rel="nofollow" class="external text" href="http://www.opengl.org/">The official OpenGL website</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Khronos_Group_Standards41" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Khronos_Group_Standards41" style="font-size:114%;margin:0 4em"><a href="Khronos_Group" title="Khronos Group">Khronos Group</a> Standards</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Active</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="EGL_(API)" title="EGL (API)">EGL</a></li>
<li><a href="GlTF" title="GlTF">glTF</a></li>
<li><a href="Neural_Network_Exchange_Format" title="Neural Network Exchange Format">NNEF</a></li>
<li><a href="OpenCL" title="OpenCL">OpenCL</a></li>
<li><a href="OpenVG" title="OpenVG">OpenVG</a></li>
<li><a href="OpenVX" title="OpenVX">OpenVX</a></li>
<li><a href="OpenXR" title="OpenXR">OpenXR</a></li>
<li><a href="Standard_Portable_Intermediate_Representation" title="Standard Portable Intermediate Representation">SPIR</a></li>
<li><a href="SYCL" title="SYCL">SYCL</a></li>
<li><a href="Vulkan" title="Vulkan">Vulkan</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Inactive</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="COLLADA" title="COLLADA">COLLADA</a></li>
<li><a href="OpenGL" title="OpenGL">OpenGL</a>
<ul><li><a href="OpenGL_ES" title="OpenGL ES">ES</a></li>
<li><a href="OpenGL_SC" title="OpenGL SC">SC</a></li>
<li><a href="WebGL" title="WebGL">WebGL</a></li></ul></li>
<li><a href="OpenKODE" title="OpenKODE">OpenKODE</a></li>
<li><a href="OpenMAX" title="OpenMAX">OpenMAX</a></li>
<li><a href="OpenSL_ES" title="OpenSL ES">OpenSL ES</a></li>
<li><a href="OpenWF" title="OpenWF">OpenWF</a></li>
<li><a href="WebCL" title="WebCL">WebCL</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox authority-control" aria-label="Navbox390" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Authority control databases: National </th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/7673247-2">Germany</a></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-01-20" href="https://en.wikipedia.org/wiki/?title=OpenGL_Shading_Language&oldid=1270723503">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>